package xyz.cerberu.cet.user.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import xyz.cerberu.cet.user.domain.User;

/**
 * @author β世界
 */
@Mapper
public interface UserDao {

    /**
     * @author β世界 on 12:50 2021/3/30
     * @Description 添加用户
     * @param user: 用户实体
     * @return void
     **/
    void insertUser(@Param("user") User user);

    /**
     * @author β世界 on 12:50 2021/3/30
     * @Description 根据邮箱和密码查询一个用户
     * @param email: 用户的邮箱
     * @param password: 用户的密码
     * @return void
     **/
    User findByEmailAndPassword(@Param("email") String email, @Param("password") String password);

    /**
     * @author β世界 on 12:50 2021/3/30
     * @Description 根据邮箱查询一个用户
     * @param email: 用户的邮箱
     * @return void
     **/
    User findByEmail(@Param("email") String email);
    
    /**
     * @author β世界 on 12:51 2021/3/30
     * 更新用户的基本信息(用户名、简介、头像等...)
     * @param user: 用户实体
     * @return int
     **/
    int updateBaseInfo(@Param("user") User user);

    /**
     * @author β世界 on 12:51 2021/3/30
     * 更新用户的密码
     * @param user: 用户实体
     * @return int
     **/
    int updatePassword(@Param("user") User user);
}
